The human perception of audio volume is distinctly logarithmic in nature. For example, a drop of one-half in the amplitude of an audio signal corresponds to a discerned decrease in volume of significantly less than one half of the original volume. Thus, it is much more convenient for applications if an audio subsystem provides a volume scale such that fifty percent of the maximum of the volume sounds like half the volume to the user. Translating the volume for smooth transitions from one volume level to a higher or lower volume level over time is an especially perplexing problem.
When increasing the volume over time, the most cost effective solution is to have a Digital Signal Processor (DSP) perform the appropriate conversion. However, most DSPs are sixteen-bit, fixed point processors that are unable to effectively perform logarithmic functions because of truncation problems due to limited precision leading to round off errors. The subject invention solves this problem by presenting a fast, non-linear, smooth, accurate scaling method using a DSP.
Other applications have been faced with translating linear values to non-linear values. One example of such a solution is found in IBM Technical Disclosure Bulletin, vol. 28, no. 3, pp. 1217-1221, entitled, "COLOR OR GREY SCALE SELECTION CIRCUIT WITH CORRECTED D/A CONVERTER." The subject TDB discloses an approximation to logarithmic brightness steps employing a linear D/A converter using a suitable correction. The correction is applied by adding an offset C to the output of a linear A/D converter voltage, and multiplying by a constant. This solution is impractical as a solution to our problem due to the inaccuracies inherent in multiplication on a sixteen bit processor.